[Viene de la documentación de Subprogramas 1.]
Total, que una vez tenemos el subprograma, hay que utilizarlo. El programa principal (que también parece un subprograma, si te fijas) será este:
int main() { double peso1, peso2; string categoria1, categoria2; cin >> peso1 >> peso2; categoria1 = determina_categoria(peso1); // llamada 1 categoria2 = determina_categoria(peso2); // llamada 2 if (categoria1 == categoria2) { cout << "El combate se puede celebrar" << endl; } else { cout << "No hay comabate" << endl; } }
Allí donde antes había los ifs repetidos ahora hay simplemente dos líneas donde se invoca (o se llama) la función determina_categoria. Cada llamada ejecuta el programa utilizando datos de entrada distintos y los resultados que se obtienen se guardan en las variables categoria1 y categoria2. Las llamadas a la función determina_categoria se colocan donde nos gustaría poner el resultado, en este caso en la parte derecha de la asignación. Los valores que se pasan como datos de entrada en cada caso son distintos y van entre paréntesis (peso1 y peso2 respectivamente).
El resumen de la historia es que hemos acabado con un programa que es más corto que el primero que habíamos hecho y donde tenemos un subprograma llamado determina_categoria (y un programa principal llamado main). El programa principal, cuando necesita calcular la categoría de un boxeador no lo hace directamente sinó que invoca (o llama, o ejecuta) el subprograma para que éste lo calcule, y luego utiliza el resultado obtenido. Esto hace que las llamadas a subprogramas se conviertan en "nuevas instrucciones", más complejas que las que teníamos, y nos permiten hacer programas grandes y por tanto más interesantes.
En preparación